import trigger from '../../effect/trigger.js'
import { TriggerOpTypes } from '../../utils.js'
export default function (target, key) {
  // 判断一下目标对象上面是否有要删除的属性
  const hadkey = target.hasOwnProperty(key)

  // 进行删除行为，返回 true 或 false
  const result = Reflect.deleteProperty(target, key)

  // 如果对象存在该属性，才进行派发更新
  if (hadkey && result) {
    trigger(target, TriggerOpTypes.DELETE, key)
  }

  return result
}
